From adfd9f4561560c64cb71b7b59129ca22c1b98707 Mon Sep 17 00:00:00 2001 From: Jake Wires Date: Fri, 27 Apr 2007 17:54:06 -0700 Subject: [PATCH] Ensure blk{tap/back}'s vm_area is not freed twice on error case. Signed-off-by: Jake Wires --- linux-2.6-xen-sparse/drivers/xen/blkback/interface.c | 1 + linux-2.6-xen-sparse/drivers/xen/blktap/interface.c | 1 + 2 files changed, 2 insertions(+) diff --git a/linux-2.6-xen-sparse/drivers/xen/blkback/interface.c b/linux-2.6-xen-sparse/drivers/xen/blkback/interface.c index 61433bba79..6df7b734d6 100644 --- a/linux-2.6-xen-sparse/drivers/xen/blkback/interface.c +++ b/linux-2.6-xen-sparse/drivers/xen/blkback/interface.c @@ -136,6 +136,7 @@ int blkif_map(blkif_t *blkif, unsigned long shared_page, unsigned int evtchn) { unmap_frontend_page(blkif); free_vm_area(blkif->blk_ring_area); + blkif->blk_rings.common.sring = NULL; return err; } blkif->irq = err; diff --git a/linux-2.6-xen-sparse/drivers/xen/blktap/interface.c b/linux-2.6-xen-sparse/drivers/xen/blktap/interface.c index 21c4d551e7..11f800197a 100644 --- a/linux-2.6-xen-sparse/drivers/xen/blktap/interface.c +++ b/linux-2.6-xen-sparse/drivers/xen/blktap/interface.c @@ -137,6 +137,7 @@ int tap_blkif_map(blkif_t *blkif, unsigned long shared_page, if (err < 0) { unmap_frontend_page(blkif); free_vm_area(blkif->blk_ring_area); + blkif->blk_rings.common.sring = NULL; return err; } blkif->irq = err; -- 2.30.2